1. Field
One or more embodiments of the present invention relate to an operating system for driving an embedded system such as in a mobile device, a multimedia device, a home device, and the like, and more particularly, to a method and apparatus for migrating at least one task so that the task can be performed in a suitable core in an operating system for driving a computer system such as a computer, a notebook, and the like that contains a multi-core.
2. Description of the Related Art
Multi-core platforms have become important due to the performance limitation of single cores in processor technology that has developed through performance/speed competition of cores. Furthermore, it is expected that development will be from multi-core platforms to many-core platforms that use several tens or hundreds of cores.
An operating system assigns each task that is to be performed to each core and schedules each task according to a priority of each task in order to perform multi-tasking in a current multi-core platform. In this regard, a static method and a dynamic method are used to determine in which one of a plurality of cores each task is to be performed and to assign each task to a corresponding core.
In a static method, a core in which a task is to be performed is static and does not change. In more detail, if a task is initially assigned to a core, the core performs the task until it is completed. In a dynamic method, a task migrates to several cores while being performed according to the load of a system or a change in the constitution of an application thereof. In more detail, even if a task is initially assigned to a predetermined core, the task can be performed in another core according to a next situation.
As described above, the static method is used for simple scheduling due to the non-migration of a task, whereas it is not used to actively change a plurality of cores, which reduces utilization of each core and does not cope with dynamic environmental variation. A flexible system is needed to meet a user's various requirements. To this end, a method of dynamically coping with the load of the flexible system or a change in the constitution of an application thereof is required to perform tasks.
However, a task must migrate from an initially assigned predetermined core to another core in order to dynamically change an assignment of the task. In this regard, it is very important to reduce migration costs of resources. In particular, an embedded system that performs a real-time task such as a multimedia task must continue to provide a service in spite of migration of the task.